package interfazeak;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import laguntzaileak.Aukeratutakoak;

import db.BarietateaKud;
import db.LekuaKud;

public class Eguneratu extends JDialog {

	private final JPanel contentPanel = new JPanel();
	private Mahastiak_Lekuak guraso;
	private Aukeratutakoak aukeratutakoa;
	private JButton gorde;
	private JCheckBox check;
	private JLabel lblherria;
	private JLabel lblizena;
	private JLabel herriajarri;
	private JLabel izenajarri;
	private Vector<Integer> beteaukeratuta;
	private Vector<JCheckBox> bektorcheck;

	public static void main(String[] args) {
		try {
			final Boolean MODALA = true;

			
			String h = null, i = null;
			Eguneratu dialog = new Eguneratu(new Mahastiak_Lekuak(), MODALA, h,
					i);
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public Eguneratu(Mahastiak_Lekuak mahastiak_Lekuak, boolean b, String h,
			String i) {
		this.guraso = guraso;

		bektorcheck = new Vector<JCheckBox>() ;
		aukeratutakoa = new Aukeratutakoak(null, null, new Vector<JCheckBox>());
		setBounds(200, 150, 500, 400);
		setTitle("EGUNERATU");
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);

		lblherria = new JLabel("Herria:");
		lblherria.setBounds(30, 40, 70, 15);
		contentPanel.add(lblherria);

		final String herria = h;
		
		herriajarri = new JLabel(herria);
		herriajarri.setBounds(105, 40, 100, 15);
		contentPanel.add(herriajarri);

		lblizena = new JLabel("Izena:");
		lblizena.setBounds(30, 80, 70, 15);
		contentPanel.add(lblizena);

		final String izena = i;
	
		izenajarri = new JLabel(izena);
		izenajarri.setBounds(105, 80, 100, 15);
		contentPanel.add(izenajarri);

		gorde = new JButton("GORDE");
		gorde.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				aukeratutakoa.setIzena(izena);
				aukeratutakoa.setHerria(herria);
				Eguneratu.this.beteaukeratua(aukeratutakoa,bektorcheck);
				
					int konfirmatu = JOptionPane.showConfirmDialog(
							Eguneratu.this, "Eguneratu nahi duzu?");

					if (JOptionPane.OK_OPTION == konfirmatu) {
						Eguneratu.this.aldatu(aukeratutakoa);
						
						Eguneratu.this.dispose();
					}
					else if ( JOptionPane.NO_OPTION == konfirmatu ) {
					
						Eguneratu.this.dispose();
					}
				
				
				
			}
		});
		gorde.setBounds(32, 217, 117, 25);
		contentPanel.add(gorde);

		betecheck(h, i);
	}

	protected void aldatu(Aukeratutakoak aukeratutakoa2) {
	
		LekuaKud.aldatuBadago(aukeratutakoa);

	}

	protected void beteaukeratua(Aukeratutakoak auk, Vector<JCheckBox> bek) {
		
		
		int luz=1;
		int i=0;
	while (bek.size()>=luz){
		if  (bek.elementAt(luz-1).isSelected()){
			auk.getBarietatecheck().add(i,bek.elementAt(luz-1));
			i=i+1;
		}
		luz=luz+1;
	}
	}

	protected void betecheck(String her, String ize) {
		beteaukeratuta = new Vector<Integer>();
		int idlek = LekuaKud.lortulekua(her, ize);
		beteaukeratuta = LekuaKud.lortuBarietateaukeratuak(idlek);
		ResultSet rs = BarietateaKud.betecheck();
		int x = 300, y = 40, h = 180, w = 23, id = 0, ia = 0;
		try {

			while (rs.next()) {

				String barietatea = rs.getString(1);
				id = BarietateaKud.lortuId(barietatea);

				check = new JCheckBox(barietatea);
				check.setBounds(x, y, h, w);
				// check.setActionCommand(barietatea);
			
				boolean badago = badagoBarietatea(beteaukeratuta,id);
				if (badago==true){
					check.setSelected(true);
					
				}
				
				bektorcheck.add(ia,check);
				contentPanel.add(check);

				y = y + 70;
				ia = ia + 1;

			}
		}

		catch (SQLException e) {

			e.printStackTrace();
		}

	}

	private boolean badagoBarietatea(Vector<Integer> beteaukeratuta, int id) {
		
		boolean badago = false;
		int i=1;
		while (beteaukeratuta.size()>=i && badago==false){
			if (beteaukeratuta.elementAt(i-1)== id){
				badago=true;
			}
			i=i+1;
		}
		return badago;
	}
}
